# -*- coding: utf-8 -*-
"""
项目名称：cotton_test
文件名称：transform.py
创建时间：2025-06-08 20:47:50

系统用户：wyl
作　　者：無以菱
联系邮箱：huangjing2001.guet@qq.com
功能描述：棉花叶片图像预处理转换
- 本模块定义了用于棉花叶片图像预处理的转换流水线。
- 这些转换用于将输入图像标准化，使其可以被神经网络模型正确处理。
"""

import torch
import torchvision.transforms as transforms

# 定义图像预处理转换流水线
transform = transforms.Compose([
    # 第1步：调整图像大小为256x256像素
    # 这是为了保持图像的纵横比，同时为后续的裁剪操作做准备
    transforms.Resize(256),
    
    # 第2步：从中心裁剪出224x224像素的图像
    # 这是为了移除可能的边缘噪声，并确保所有图像具有相同的尺寸
    # 224x224是许多预训练CNN模型的标准输入尺寸
    transforms.CenterCrop(224),
    
    # 第3步：将PIL图像转换为PyTorch张量
    # 将像素值从[0, 255]转换为[0.0, 1.0]
    transforms.ToTensor(),
    
    # 第4步：使用ImageNet数据集的均值和标准差进行标准化
    # 均值：[0.485, 0.456, 0.406]，标准差：[0.229, 0.224, 0.225]
    # 标准化后，每个通道的像素值分布近似为均值0、标准差1的正态分布
    # 这有助于模型更快地收敛
    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
]) 